It is known to transport data via telecommunication networks using virtual concatenation of transport containers. In such a transport arrangement, a plurality of connections through the telecommunication network are used in parallel. More specifically, data is distributed over the connections in the following manner. A stream of data is split into blocks and the blocks are transmitted through the connections in messages that are called containers. The containers are organized into groups of containers. In general, each group contains as many containers as the number of available connections. Successive groups correspond to successive time segments of the data stream, each segment containing the blocks that are transmitted in the containers of the group. Each time frame (time slot) of the operation of the communications system corresponds to transmission of a group of containers, e.g., different containers from the group are transmitted via different ones of the connections in the time frame.
At a receiving side, a plurality of containers are received in each time frame and the data stream is reassembled from the data in the containers. Due to the nature of the telecommunications system, the containers from different connections experience different delays between the time frame of transmission and the time frame of reception. Thus, it is generally guaranteed that the containers received over each connection individually are received in sequence, but there may be differences between the delays experienced by containers that are received over different connections. To reassemble the data stream in spite of these differences, the data from the containers in a group is buffered at the receiving side until it has been determined that all containers from the group have been received. Subsequently, data from the containers of the group is output in the order of original reception. For high bandwidth data streams, the amount of memory that is needed for buffering the data can be considerable. To minimize the amount of memory, it is desirable that the data is not buffered for unnecessarily long periods. The data from a group of containers should be output as soon as it has been detected that all containers of the group have been received.
In order to make it possible to detect when all containers from a group have arrived, an identifier is transmitted with each container. The identifier identifies the group to which the container belongs. In one example, this identifier is called the MFRI (MultiFRame Identifier), for which a 12 bit number may be used. This number may wrap around each time after 4096 groups, for example. At the receiving side, data from each group of containers may be output when all containers with the MFRI of that group have been received from the different connections. The MFRI of the oldest group that has been completed in a time frame can be detected from the oldest MFRI from the set of containers that has been received in that time frame, provided containers have been received from all connections. The determination of the oldest MFRI requires comparisons involving all MFRI's. This determination is complicated, moreover, by the fact that it does not suffice to look for the lowest MFRI to determine the oldest MFRI, because the MFRI may wrap around. In addition, it has to be checked whether the delays experienced via different ones of the connections do not differ so much that more than the available memory is needed to compensate the differences.
In practice it has been found that this detection process is hard to implement with sufficient speed without very complex circuitry. It is especially difficult to implement comparisons at the clock rate that is needed to operate the system at sufficient speed in high bandwidth applications.